1. Field of the Invention
The present invention relates to general purpose computer systems. More specifically, the present invention pertains to a computer system that uses non-volatile memory in lieu of volatile (random access) memory.
2. Related Art
In addition to memory devices such as magnetic disks and optical disks, a computer system primarily uses two types of memory: random access memory (RAM) and read only memory (ROM). ROM is used for permanent storage of software and data that are loaded at the time of manufacture, for example, and are not modifiable by the user. Because ROM can only be read, there is no line into ROM for allowing a write transaction. RAM, on the other hand, can be written to and read from.
Memory locations in RAM can be written to or read from in any order at any time, while ROM contents are wired into fixed memory locations, and cannot be written over. The control logic used by processors to interact with RAM is relatively simple and direct compared to the control logic for retrieving information from ROM, and so memory access times for ROM are usually longer than those for RAM. Also, the different ways that information is stored in ROM versus RAM also contribute to longer memory access times for ROM relative to RAM. Consequently, program execution and data processing take place in RAM in order to improve performance.
The computer system""s main memory (also referred to as main storage, primary storage, core, or core storage) thus uses RAM. The memory registers used by the central processing unit (the registers on the processor chip) are also RAM. Many computers also employ a hierarchical memory structure with one or more levels of memory cache between main memory RAM and the central processing unit (CPU) registers. These memory caches also utilize RAM.
However, RAM can only be used to temporarily store information; once power to RAM is turned off (e.g., when the computer system is powered off), the information in RAM is lost. Therefore, during bootup of the computer system, or during initialization of a software application, the contents of ROM memory or disk memory (e.g., the computer system""s xe2x80x9chard drivexe2x80x9d) are copied to RAM memory, and the RAM copy is used instead of the ROM or hard drive contents for data processing and program execution.
A disadvantage to the prior art is that the time it takes to copy ROM contents to RAM during bootup can be relatively long, and is likely to increase in length as operating systems and software applications grow in complexity and size. After bootup, the user is subjected to additional delays while waiting for software applications to be loaded from ROM (or the hard drive) and made ready for use. At shutdown, information and data stored in RAM during operation are backed up in non-volatile memory (e.g., the hard drive), and this can subject the user to further delays.
It is possible to avoid delays associated with bootup and shutdown and with opening applications by not powering off the computer system, thus preserving the information loaded into RAM. However, this is not a viable solution for mobile, portable devices (personal digital assistants, laptops, and the like) that depend on batteries for power. Nor is it a solution for devices powered from a wall outlet, because leaving a device on at all times wastefully consumes power.
Another disadvantage to the prior art is associated with the sudden (unexpected) loss of power to the computer system. In this situation, any information residing in RAM and not saved to disk may be lost and may not be retrievable.
Thus, a need exists for a system and/or method that can address user issues with the amount of time it takes to bootup and shutdown a computer system and to open applications used by the computer system.
The present embodiment of the present invention pertains to a computer system that uses non-volatile memory in lieu of volatile memory, e.g., random access memory (RAM). In one embodiment, the main memory is non-volatile and stores operating system software and application software used by the central processing unit (CPU) when the computer system is operating after bootup. The operating system and application software remain resident in the non-volatile main memory while they are being used; that is, they are not copied to RAM. Furthermore, in accordance with the present invention, the operating system software and application software used by the computer system after bootup are retained in an initialized and executable state within the non-volatile main memory when the computer system is powered off.
In one embodiment, the second level memory cache used by the computer system uses non-volatile memory. In another embodiment, the CPU registers use non-volatile memory.
In one embodiment, FeRAM (ferromagnetic or farroelectronic RAM) is used for non-volatile memory. In another embodiment, flash memory is used for non-volatile memory.
In summary, the present invention introduces the use of non-volatile memory for main system memory, cache memory, and/or memory registers, including CPU registers. As such, the time to bootup the computer system and open an application can be reduced because, respectively, the operating system and application software do not need to be copied into RAM and initialized into an executable state. The time to shutdown the computer system can also be reduced because it is not necessary to back up information from RAM to non-volatile memory.
These and other advantages of the present invention not specifically mentioned above will become clear within discussions of the present invention presented herein.